1. Technical Field
The present disclosure relates to caching technologies. In particular the present disclosure relates to drive caching technologies that employ data compression.
2. Background Art
Electronic devices such as desktop computers, laptop computers, smart phones, tablets, and the like often include one or more peripheral storage devices. For example, a desktop computer may include a hard disk drive (HDD) that includes a magnetic recording medium (disk) that is configured to persistently store data. Although useful, the input/output (e.g., write/read) performance of an HDD may be relatively slow compared to other components of the device. HDDs and other relatively slow storage devices (e.g., tape memory) may therefore bottleneck the performance of the electronic device in which it/they is/are installed. Although many attempts have been made to improve their performance, the electro-mechanical nature of HDDs may practically limit the degree to which their performance may be improved.
One way to relieve a bottleneck presented by a relatively slow peripheral storage device is to use a cache device (also referred to herein as a “cache”). In general, a cache device is a memory device that logically resides between a relatively slow storage device and other components of an electronic device, such as a processor. Typically a cache includes memory that is relatively fast compared to the relatively slow storage device with which the cache device is associated. The memory of the cache device may serve as a temporary storage area for the peripheral storage device. For example frequently accessed (“hot”) data may be placed in the cache after it is initially accessed, e.g., from the relatively slow storage device. Subsequent accesses to the hot data may thereafter be made to the cache instead of the relatively slow storage device. A cache controller may apply one or more algorithms and/or policies to determine which data is stored in the memory of the cache device, and which is removed. Because the cache is faster than the relatively slow storage device, the input/output performance of the system may be improved.
Although cache devices can alleviate the performance bottleneck introduced by relatively slow peripheral storage devices, cache memory is often quite expensive. The size of a cache may therefore be limited by cost and/or other considerations. Consequently, the amount of data that may be stored in a cache may be practically limited by the size of its memory.